Computer graphics display systems, e.g., CAD/CAM graphics workstations, are widely used to generate and display two-dimensional images of three-dimensional objects for scientific, engineering, manufacturing and other applications. Ever present demands for higher quality renderings of more complicated images continually require greater computational throughput by such systems. Typically, a graphics display system is subdivided into a graphics processor sub-system and a rendering sub-system which are interconnected such that commands/data are processed through the sub-systems in a pipeline manner.
Often, a problem arises in the graphics processor sub-system in that a course of action (referred to herein as a "conditional command") may depend upon prior pipeline processing. Specifically, data information in the form of a serial stream is input into the pipeline at the graphics processor sub-system and processed until resultant data is attained at the rendering sub-system. This resultant data must then be fed back to the graphics processor portion of the pipeline for use in implementing the conditional command. To ensure the accuracy of data fed back from the frame buffers to the graphics processor, the existing processing approach essentially dictates a flushing of the pipeline (i.e., a processing of all commands/data prior to the conditional command) before the data is fed back to the graphics processor subsystem for consideration. Thus, a latency necessarily arises within pipeline processing from the consideration of the conditional command.
By way of a more specific example, certain graphic system rendering algorithms may rely upon a query of a frame buffer's state to gate the rendering function. The problem is realized in, for example, the case of annotation text where a character string (i.e., multiple glyphs) is either rendered or not rendered based upon the visibility of a single pixel on the screen. In such a case, the pixel of interest must be fed down the pipeline, and the system must ascertain whether the pixel of interest has been placed into the Z-buffer (i.e., identified as visible). Next, the pipeline is flushed to ensure that data prior to the conditional block of commands/data has been rendered and handled in the Z-buffer. Finally, a test is made of the pixel of interest to determine whether to proceed to send the entire associated glyphs.
In a particular case, a polymarker is a PHIGS command for drawing one or more graphic markers on a display. Its requirements include testing for visibility, highlighting, and detectability; and satisfaction of the choices of color, marker size and marker type. Today's method of handling the function is extremely inefficient because the pipeline is forced to be emptied prior to rendering each marker, and then after completion, there is necessarily an associated delay until data is rendered again. The invention described herein provides a solution to this problem and is applicable to rasterizer logic in either a single rasterizer or multi-rasterizer environment.
In another aspect of the prior art, existing graphics processor systems typically rely on software to accomplish certain functions. For example, multiple comparisons at a pixel location are conventionally implemented in software, as are inequality considerations in general with reference to a previous pixel value. The need for such data processing may arise, for example, in a constructive solid geometry (CSG) application. Constructive solid geometry is described in an article by J. Rossignac and J. Wu entitled: "Correct Shading of Regularized CSG Solids Using a Depth-Interval Buffer," Eurographics Workshop on Graphics Hardware at the Ecole Polytechnique Federale, Lausanne, Switzerland (Sept., 1990). Briefly, CSG facilitates certain manipulation of solid object functions, such as would be necessary to drill a hole within a cube. Up to this point, the Boolean operations employed have necessarily been conducted in software. Obviously, to the extent implementable in hardware, enhanced system performance can be expected. This issue is also addressed by the present invention through an extension of the concept of state flagging within the rendering sub-system to include utility buffer results and raster results upon which such a determination can be made.
Thus, a need for enhanced decision variable hardware logic and associated processing methods for computer processing in general and graphics display systems in particular exists within the art. To the extent performance is enhanced, commercial advantage is attained in the competitive and continually evolving field of computer processing.